The virtual hard disk (VHD) file format can be used to back up a target volume, for example a volume stored on a production system hard drive. The VHD format is a container format which can contain disk related information. VHD files which can be mounted and used as a regular disk can be easily created. Volumes such as NTFS/ReFS/FAT32 or any file system which the operating system (OS) supports on the mounted disk can also be created. Differencing VHD's can be created which will have internal references to parent VHD.
EMC Networker® backup solution includes an ability to create a full and incremental backup of a target volume by copying all or only changed blocks of the target volume into a VHD format. The software module creates a VHD stream which contains all the VHD related metadata and the disk metadata such as MBR (Master Boot Record), GPT (GUID Partition Table) and the volume contents on the fly, which will then be streamed to the backup medium such as tape or disk targets as a single stream. The resulting save set can then be mounted which will contain the volume to be backed up for recovery purposes. The resulting VHD file contains only one volume, which makes it easier to chain incremental backups of a particular volume, which will be linked to its parent.
Each data block region of the VHD format includes a sector bitmap and data. For dynamic disks, the sector bitmap indicates which sectors contain valid data (1's) and which sectors have never been modified (0's). For differencing disks, the sector bitmap indicates which sectors are located within the differencing disk (1's) and which sectors are in the parent (0's). The bitmap is padded to a 512-byte sector boundary.
A block is a power-of-two multiple of sectors. By default, the size of a block is 4096 512-byte sectors (2 MB). All blocks within a given image must be the same size. This size is specified in the “Block Size” field of the Dynamic Disk Header.
All sectors within a block whose corresponding bits in the bitmap are zero must contain 512 bytes of zero on disk. Software that accesses the disk image may take advantage of this assumption to increase performance.
On a target volume which has high number of file system extents, the time taken to prepare the sector bitmap for each data block region takes very long time, thus affecting the number of data block extents prepared per second.
Typically, common extents for a given data block zone have been found by looping through all the known file system volume extents as shown in the above table sequentially. Every time a data block zone is prepared the routine which finds out common extents starts from the first file system extent.